action muxer: Propagate accel changes
authorMatthias Clasen <mclasen@redhat.com>
Thu, 17 Jun 2021 12:35:59 +0000 (08:35 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 17 Jun 2021 12:50:26 +0000 (08:50 -0400)
When we set a new parent on an action muxer,
accels may change, so call primary_accel_changed
for involved actions.

gtk/gtkactionmuxer.c

index d57e315daffc2ab6d696af8336c2fdcb6b1f7ca4..9eac44b72ee21fdec66f16b0eb14dabc70d346d5 100644 (file)
@@ -443,10 +443,9 @@ notify_observers_added (GtkActionMuxer *muxer,
       if (!action->watchers)
         continue;
 
-      if (action_muxer_query_action (muxer, action_name,
-                                     NULL, NULL, NULL, NULL, NULL,
-                                     FALSE))
-        continue;
+      for (node = action ? action->watchers : NULL; node; node = node->next)
+        gtk_action_observer_primary_accel_changed (node->data, GTK_ACTION_OBSERVABLE (muxer),
+                                                   action_name, NULL);
 
       gtk_action_observable_register_observer (GTK_ACTION_OBSERVABLE (parent), action_name, GTK_ACTION_OBSERVER (muxer));